<?php
class Counter
{
   private static $c = 0;
   /**
    * Zwikszanie wartoci licznika.
    *
    * @final
    * @static
    * @access  public
    * @return  int
    */
   final public static function increment()
   {
       return ++self::$c;
   }
}
// Utworzenie egzemplarza klasy Reflection_Method.
$method = new ReflectionMethod('Counter', 'increment');
// Wywietlenie informacji podstawowych.
printf(
   "===> To %s%s%s%s%s%s%s metoda '%s' (ktra jest %s)\n" .
   "     zadeklarowana w %s\n" .
   "     wiersze od %d do %d\n" .
   "     posiada nastpujce modyfikatory dostpu %d[%s]\n",
       $method->isInternal() ? 'wbudowana' : 'zdefiniowana przez uytkownika',
       $method->isAbstract() ? ' abstract' : '',
       $method->isFinal() ? ' final' : '',
       $method->isPublic() ? ' public' : '',
       $method->isPrivate() ? ' private' : '',
       $method->isProtected() ? ' protected' : '',
       $method->isStatic() ? ' static' : '',
       $method->getName(),
       $method->isConstructor() ? 'konstruktorem' :
                                      'zwyk metod',
       $method->getFileName(),
       $method->getStartLine(),
       $method->getEndline(),
       $method->getModifiers(),
       implode(' ', Reflection::getModifierNames(
                                 $method->getModifiers()))
       );
// Wywietlenie komentarza znajdujcego si w klasie.
printf("---> Dokumentacja:\n %s\n",
                  var_export($method->getDocComment(), 1));
// Wywietlenie zmiennych statycznych, o ile takie istniej
if ($statics= $method->getStaticVariables()) {
   printf("---> Zmienne statyczne: %s\n", var_export($statics, 1));
}
// Wywoanie metody.
printf("---> Wynik wywoania metody to: ");
var_dump($method->invoke(NULL));
?>
